package com.zbkj.crmeb.payment.vo.hkwechat;


import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="HKCallbackVo对象", description="香港微信支付回调")
public class HkPayCallbackVo {

    @ApiModelProperty(value = "版本号 默认2.0非必填")
    @JsonProperty(value = "version")
    private String version;

    @ApiModelProperty(value = "字符集 默认UTF-8非必填")
    @JsonProperty(value = "charset")
    private String charset;

    @ApiModelProperty(value = "签名类型 默认MD5非必填")
    @JsonProperty(value = "sign_type")
    private String signType;

    @ApiModelProperty(value = "返回狀態碼 0 表示成功非 0 表示失敗 此字段是通信標識，非交易 標識，交易是否成功需要查 看 result_code 來判斷")
    @JsonProperty(value = "status")
    private String status;

    @ApiModelProperty(value = "返回資訊，如非空，為錯誤原因簽名失敗參數 格式校驗錯誤")
    @JsonProperty(value = "message")
    private String message;

    @ApiModelProperty(value = "业务结果 0 表示成功非 0 表示失敗")
    @JsonProperty(value = "result_code")
    private String resultCode;

    @ApiModelProperty(value = "商户号")
    @JsonProperty(value = "mch_id")
    private String mchId;

    @ApiModelProperty(value = "终端设备号")
    @JsonProperty(value = "device_info")
    private String deviceInfo;

    @ApiModelProperty(value = "随机字符串")
    @JsonProperty(value = "nonce_str")
    private String nonceStr;

    @ApiModelProperty(value = "错误代码")
    @JsonProperty(value = "err_code")
    private String errCode;

    @ApiModelProperty(value = "錯誤代碼描述")
    @JsonProperty(value = "err_msg")
    private String errMsg;

    @ApiModelProperty(value = "簽名")
    @JsonProperty(value = "sign")
    private String sign;

    @ApiModelProperty(value = "用户标志   用戶在商戶 appid 下的唯一標識")
    @JsonProperty(value = "openid")
    private String openid;

    @ApiModelProperty(value = "交易類型 pay.weixin.jspay")
    @JsonProperty(value = "trade_type")
    private String tradeType;

    @ApiModelProperty(value = "是否关注公众号 用戶是否關注公眾帳號，Y-關注，N-未關注， 僅在公眾帳號類型支付有效")
    @JsonProperty(value = "is_subscribe")
    private String isSubscribe;

    @ApiModelProperty(value = "支付結果：0—成功；其他—失敗")
    @JsonProperty(value = "pay_result")
    private String payResult;

    @ApiModelProperty(value = "支付結果資訊，支付成功時為空")
    @JsonProperty(value = "pay_info")
    private String payInfo;

    @ApiModelProperty(value = "平台订单号")
    @JsonProperty(value = "transaction_id")
    private String transactionId;

    @ApiModelProperty(value = "第三方订单号")
    @JsonProperty(value = "out_transaction_id")
    private String outTransactionid;

    @ApiModelProperty(value = "用戶是否關注子公眾帳號，Y-關注，N-未關注， 僅在公眾帳號類型支付有效")
    @JsonProperty(value = "sub_is_subscribe")
    private String subIsSubscribe;

    @ApiModelProperty(value = "子商户appid")
    @JsonProperty(value = "sub_appid")
    private String subAppid;

    @ApiModelProperty(value = "用戶在商戶 sub_appid 下的唯一標識")
    @JsonProperty(value = "sub_openid")
    private String subOpenid;

    @ApiModelProperty(value = "商戶訂單號 商戶系統內部的定單號，32 個字元內、可包含 字母")
    @JsonProperty(value = "out_trade_no")
    private String outTradeNo;

    @ApiModelProperty(value = "總金額，以分為單位，不允許包含任何字、符 號")
    @JsonProperty(value = "total_fee")
    private Integer totalFee;

    @ApiModelProperty(value = "現金券支付金額<=訂單總金額， 訂單總金額- 現金券金額為現金支付金額")
    @JsonProperty(value = "coupon_fee")
    private Integer couponFee;

    @ApiModelProperty(value = "貨幣種類 貨幣類型，符合 ISO 4217 標準的三位字母代 碼，CNY")
    @JsonProperty(value = "fee_type")
    private String feeType;

    @ApiModelProperty(value = "附加咨询")
    @JsonProperty(value = "attach")
    private String attach;

    @ApiModelProperty(value = "付款銀行")
    @JsonProperty(value = "bank_type")
    private String bankType;

    @ApiModelProperty(value = "银行订单号")
    @JsonProperty(value = "bank_billno")
    private String bankBillno;

    @ApiModelProperty(value = "支付完成時間，格式為 yyyyMMddHHmmss，如 2009 年 12 月 27 日 9 點 10 分 10 碼錶示為 20091227091010。時區為 GMT+8 beijing。該 時間取自平臺伺服器")
    @JsonProperty(value = "time_end")
    private String timeEnd;

    @ApiModelProperty(value = "現金支付金額 訂單現金支付金額，100")
    @JsonProperty(value = "cash_fee")
    private Integer cashFee;

    @ApiModelProperty(value = "現金支付貨幣類型  貨幣類型，符合 ISO 4217 標準的三位字母代 碼，CNY")
    @JsonProperty(value = "cash_fee_type")
    private String cashFeeType;

    @ApiModelProperty(value = "匯率  用戶支付幣種與商戶結算幣種的兌換比例關 係，6052300")
    @JsonProperty(value = "rate")
    private String rate;


}
